// C++ Program for counting sort  
//#include <bits/stdc++.h>  
#include <string.h> 
#include <iostream.h>
#define RANGE 255 
using namespace std;  
void docfile(int a[], int &n); 
void countSort(char arr[]);

void countSort(char arr[])  
{  
    // Mang Output
    //char output[strlen(arr)];  
  
    //    
    int count[RANGE + 1], i;  
    memset(count, 0, sizeof(count));  
  
    // Dem so luong phan tu co cung gia tri 
    for(i = 0; arr[i]; ++i)  
        ++count[arr[i]];  
  
    // Thay doi gia tri mang count    
    for (i = 1; i <= RANGE; ++i)  
        count[i] += count[i-1];  
  
    // Xay dung mang Output
    for (i = 0; arr[i]; ++i)  
    {  
        output[count[arr[i]]-1] = arr[i];  
        --count[arr[i]];  
    }  
   
    for (i = 0; arr[i]; ++i)  
        arr[i] = output[i];  
}  
  
// Driver  code 
int main()  
{  
    char arr[] = "geeksforgeeks"; 
    countSort(arr);  
    cout<< "Sorted character array is " << arr<<endl;  
    return 0;  
} 
